package hhdz

//有些不清楚的数据结构，参考 protogo/gamecard/game.card.pb.go 和 protogo/gamehhdz/game.hhdz.pb.go

//--------------游戏开始----------------

//水位控制打印
//0xff -> 玩家水位控制前， 数据类型: *BeforeControl
//0x100 -> 玩家水位控制后， 数据类型: *AfterControl

type BeforeControl struct {
	//是否是机器人
	IsRobot bool `json:"isRobot" bson:"isRobot"`
	//杀分率
	KillRate float32 `json:"killRate" bson:"killRate"`
}

type AfterControl struct {
	//是否控制
	IsControl bool `json:"isControl" bson:"isControl"`
	//杀分类型 -> 0: 正常，1: 杀分，2: 放分
	KillType int32 `json:"killType" bson:"killType"`
}

//--------------游戏进行中----------------

//Event_START_BET_SCORE 6750210 -> 开始下注，数据类型: nil

//开局第 1 秒，开始下注

//Event_PLAYER_BET_SCORE_REQ 6750211 -> 玩家下注信息, 数据类型: *BetScore， 数据结构定义在game.hhdz.pb.go

// 开局第 3 秒，2 号位，下注金额：100，下注区域：红区
// 开局第 4 秒，3 号位，下注金额：200，下注区域：黑区
// 开局第 5 秒，4 号位，下注金额：100，下注区域：特殊区
// 开局第 7 秒，1 号位，下注金额：500，下注区域：红区

//Event_START_SHOW_POKER 6750213 -> 下注结束，发送玩家，红区，黑区牌信息， 数据类型: *ShowPoker， 数据结构定义在game.hhdz.pb.go

// 开局第 10 秒，1 号位，红区牌：♥️10♣️J♥️Q, 牌型：顺子； 黑区牌：♥️2♣️J♥️Q, 牌型：单牌
// 开局第 10 秒，2 号位，红区牌：♥️10♣️J♥️Q, 牌型：顺子； 黑区牌：♥️2♣️J♥️Q, 牌型：单牌
// 开局第 10 秒，3 号位，红区牌：♥️10♣️J♥️Q, 牌型：顺子； 黑区牌：♥️2♣️J♥️Q, 牌型：单牌
// 开局第 10 秒，4 号位，红区牌：♥️10♣️J♥️Q, 牌型：顺子； 黑区牌：♥️2♣️J♥️Q, 牌型：单牌

//Event_GAME_RESULT 6750214 -> 发送游戏结果， 数据类型: *GameResult, 数据结构定义在下面

// 开局第 11 秒，1 号位，红区赢，幸运一击2倍
// 开局第 11 秒，2 号位，红区赢，幸运一击2倍
// 开局第 13 秒，3 号位，红区赢，幸运一击2倍
// 开局第 14 秒，4 号位，红区赢，幸运一击2倍

type BetScore struct {
	//下注区域
	Region int32 `json:"region" bson:"region"`
	//下注金额
	Money int64 `json:"money" bson:"money"`
}

type GameResult struct {
	//每个区域下注总额
	Bets []*BetScore `json:"bets" bson:"bets"`
	//是否是红区赢, true: 红区赢， false: 黑区赢
	IsRedWin bool `json:"isRedWin" bson:"isRedWin"`
	//幸运一击区域倍数，大于0表示中了
	Multiple int32 `json:"multiple" bson:"multiple"`
}

//--------------游戏结束--------------------
//玩家信息相关解释
//Result -> 玩家所属区域region, 数据类型: int32, 1:红区， 2:黑区，3:特殊区
//Data -> 玩家当局总的下注额betScore, 数据类型: int64
